package pe.edu.upc.dsd.epica.service;

import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.xml.soap.SOAPException;

import pe.edu.upc.dsd.epica.model.Establecimiento;
import pe.edu.upc.dsd.epica.model.ListaEstablecimiento;

@Path("/establecimiento")
@WebService 
public interface EstablecimientoService {
	
	@WebMethod()
	public void save(@WebParam(name="establecimiento")Establecimiento establecimiento) throws SOAPException;
	
	@WebMethod()
    public void update(@WebParam(name="codEstablecimiento")String codEstablecimiento,@WebParam(name="establecimiento")Establecimiento establecimiento) throws SOAPException;
    
	@WebMethod()
    public void delete(@WebParam(name="codEstablecimiento")String codEstablecimiento) throws SOAPException;

    @WebMethod()
    public Establecimiento findByEstablecimientoCode(@WebParam(name="codigo")String codigo) throws SOAPException;
    
    @WebMethod
    public Establecimiento findByUsuarioAndPassword(@WebParam(name="login")String login , @WebParam(name="password")String password) throws SOAPException;
   
    @GET
	@Path("/buscarLatLong/{longitud}/{latitud}")
	@Consumes("application/json")
	@Produces("application/json")
	@WebMethod()
    public ListaEstablecimiento findEstablecimientoWithPromocion(@PathParam("longitud")double longitud,@PathParam("latitud") double latitud) throws SOAPException;

    @GET
	@Path("/categoria/{categoria}")
	@Consumes("application/json")
	@Produces("application/json")
    @WebMethod
    public ListaEstablecimiento findbyCategoriaPromNoVen(@PathParam("categoria")@WebParam(name="categoria")String categoria) throws SOAPException;
    
    @WebMethod
    public List<Establecimiento> findbyPromNoVen() throws SOAPException;

}
